package 第3节函数;
/*
前3个 A->C
    前2个 A->B
        前1个 A->C
        第2个 A->B
        前1个 C->B
    第3个 A->C
    前2个 B->C
        前1个 B->A
        第2个 B->C
        前1个 A->C
寻找移动一个盘子的路径
 A->C
 A->B
 C->B
 A->C
 B->A
 B->C
 A->C

 n A->C B过渡
    前n-1 A->B C过渡
        前n-2 A->C
        第n-1 A->B
        前n-2 C->B
    第n个 A->C
    前n-1 B->C A过渡
        前n-2 B->A
        第n-1 B->C
        前n-2 A->C
*/
public class RecursionDemo05 {
    public static void main(String[] args) {
        String A="A";
        String B="B";
        String C="C";
        hanoi(3,A,B,C);
    }

    private static void hanoi(int level, String start, String mid, String end) {
        if (level == 1) {
            System.out.println(start + "->" + end);
        } else {
            hanoi(level - 1,start,end,mid);
            System.out.println(start + "->" + end);
            hanoi(level - 1,mid, start,end);
        }
    }
}
